<?php

namespace App\Http\Controllers\admin;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;
use DB;
class GoodsController extends Controller
{
    // 一个静态类 用于在下拉框显示正确的分类层次
    static public function getGoods(){
      // 查询数据
      $data = DB::table('shop_cates') -> select(DB::raw("*,concat(path,',',cid) as paths")) -> orderBy('paths') -> get();
      foreach ($data as $k => $v) {
        //逗号出现次数
        $l = substr_count($v['path'], ',');
        // 拼接路径
        $data[$k]['name'] = str_repeat('|----',$l).$v['name'];
      }
      // dd($data);
      return $data;
    } 

    // 后台商品添加
    public function getAdd($id = ''){
        return view('/admin/goods/add',['data'=>self::getGoods(),'cid'=>$id]);
    }


    // 添加
    public function postInsert(Request $request){
       // 数据组装
       // $arr = $request -> only(['gname','gprice','gcount','gsold','gdesc','cid']);
        $arr = $request ->except('_token');
       // 获取创建时间
       $arr['createTime'] = date('Y-m-d H:i:s',time());
          // 判断文件是否上传
          if($request -> hasFile('gpic')){

          // 获取文件后缀名
          $hz = $request -> file('gpic') -> getClientOriginalExtension();
          // echo $hz.'<br>';
          // 随机文件名
          $temp_name = md5(time().rand(100000,999999));
          // echo $temp_name.'<br>';
          // 拼接文件名
          $name = $temp_name.'.'.$hz;
          // echo $name;
          $arr['gpic'] = $name;
          $request -> file('gpic') -> move('./upload/',$name);
        }      
        // dd($arr);
       // 插入到数据库
       $res = DB::table('shop_goods') -> insert($arr);
       // 判断数据是否合法
       if($res>0){
        return redirect('/admin/goods/index') -> with('success','添加成功');
       }else{
        return back() -> with('error','添加失败');
       }

    }

    public function getIndex(Request $request){
    	// 接收表单传值
        $count = $request -> input('count','10');
        // 搜索相似值
        $search = $request -> input('search','');
        //  paginate 查询数据   并且分页         
        $data = DB::table('shop_goods') -> where('gname','like','%'.$search.'%') -> paginate($count);
        return view('admin/goods/index',['data'=>$data,'request'=>$request->all()]);
    }

    // 商品上架
    public function getUp(Request $request){
        // 获取商品的id
        $gid = $request() -> input('gid');
        // 修改状态
        $res = DB::table('shop_goods') -> where('gid','=',$gid)->update(['gstatus'=>2]);
        // 判断结果
        if($res>0){
          return redirect("/admin/goods/index")->with('success','上架成功');
        }else{
          return redirect("/admin/goods/index")->with('error','上架失败');
        }
    }

    // 商品下架
    public function getDown(Request $request){
      // 获取商品的id
      $gid = $request() -> input('gid');
      // 修改状态
      $res = DB::table('shop_goods') -> where('gid','=',$gid) -> update(['gstatus'=>1]);
      // 判断结果
      if($res>0){
          return redirect('/admin/goods/index')->with('success','下架成功');
        }else{
          return redirect('/admin/goods/index')->with('error','下架失败');
        }
    }

    // 修改商品页面
    public function getEdit(Request $request){
      // 调用一个静态类
      $data = self::getGoods();
      // 获取商品id
      $gid = $request -> input('cid');
      dd($gid);
      // 得到商品信息
      $info = DB::table('shop_goods')->where('gid','=',$gid)->get();
      // 显示在模板中
      return view('/admin/goods/edit',['data'=>$data,'info'=>$info[0]]);
    }

}
